iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 16
0
Big Data

30天學會Data Integration - Kettle系列 第 16

Step - 數值對應與欄位排序

  • 分享至 

  • xImage
  •  

此篇要介紹兩個使用率也蠻高的Step,[Transform]Value Mapper與[Transform]Sort rows

[Transform]Value Mapper介紹

經常使用的的情況就類似性別的男女要轉換成10或是FM,提供一個代碼對照表,讓符合的文字轉換成另外指定的代碼,經常使用於存入資料庫之前的資料轉換

[Transform]Sort rows介紹

可指定欄位進行升冪或降冪

本篇目標:將血型轉換成代碼並根據年齡排序

A、B、O、AB將轉換成1、2、3、4
http://ithelp.ithome.com.tw/upload/images/20161231/200916268yf1e1FZPY.png

新增 Value Mapper

請新增Value Mapper並建立Hop
http://ithelp.ithome.com.tw/upload/images/20161231/20091626lLOjj5TDAu.png

設定 Value Mapper

建立對應規則
http://ithelp.ithome.com.tw/upload/images/20161231/20091626rZbcDqs51O.png

預覽 Value Mapper

血型欄位已變成指定的代碼
http://ithelp.ithome.com.tw/upload/images/20161231/20091626ykxJZ9celX.png

新增Sort rows

接下來要針對年齡來進行排序,請新增Sort rows並建立Hop
http://ithelp.ithome.com.tw/upload/images/20161231/20091626G5YATHBV5X.png

設定Sort rows

選擇年齡欄位
http://ithelp.ithome.com.tw/upload/images/20161231/200916260zULHmfIbY.png

預覽Sort rows

年齡由小排到大
http://ithelp.ithome.com.tw/upload/images/20161231/20091626KPPiT7oyLh.png

同場加映:使用Modified Java Script Value達成代碼轉換

Modified Java Script Value真的是好物,不過如果過度使用,反而在維護Transformation上會比較困難,如果透過功能各自獨立的Step來處理,各司其職,反而提高了易讀性。

新增Modified Java Script Value

在建立Hop時會出現提示框,請選擇Copy,這樣此Step才會拿到上一個Step的所有資料;如果是選擇Distribute,那上一個Step的資料,會在Value Mapper與Modified Java Script Value之間輪流傳遞,也就是說Excel Step總共有三筆資料,往後傳遞資料時,Value Mapper只會拿到2筆資料,而Modified Java Script Value只會拿到1筆資料,兩個Step加起來就拿到3筆資料
http://ithelp.ithome.com.tw/upload/images/20161231/20091626lkVKMrhlz1.png

設定Modified Java Script Value

使用javascript自己寫代碼的判斷邏輯
http://ithelp.ithome.com.tw/upload/images/20161231/20091626ktLTkQ9iIT.png

var 血型;
if(血型=="A"){
	血型="1";
}else if(血型=="B"){
	血型="2";
}else if(血型=="O"){
	血型="3";
}else if(血型=="AB"){
	血型="4";
}

預覽Modified Java Script Value

一樣完成了數值對應。下圖的橘色圈圈中的icon則是代表Hop是使用Copy的方式在傳遞資料
http://ithelp.ithome.com.tw/upload/images/20161231/20091626aKFGlJsIX5.png


這幾篇都是比較著重在資料的基本處理,下一篇會介紹如何將處理完畢的資料進行匯出

參考資料:https://anotherreeshu.wordpress.com/2015/01/02/copy-data-and-distribute-data-in-pentaho-data-integration-kettle/


上一篇
Step - 使用Javascript處理日期運算
下一篇
Step - 輸出Excel檔案
系列文
30天學會Data Integration - Kettle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言